package com.zomiot.portal.auth.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * 密码编码器配置
 *
 * 使用BCrypt加密算法
 *
 * @author Joash_Yi
 */
@Configuration
public class PasswordEncoderConfig {

    /**
     * 注册密码编码器Bean
     *
     * BCrypt特点：
     * 1. 每次加密结果不同（加入随机盐）
     * 2. 单向加密，无法解密
     * 3. 自动加盐，无需手动处理
     * 4. 性能适中，安全性高
     *
     * @return PasswordEncoder
     */
    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}